﻿/*压缩类型：完全*/
/********************************************************************
功能：常用的JS函数扩展
	1、全局变量的定义
	2、扩展document的事件处理
	3、自动引入JS文件
	4、扩展Array对象的功能
使用：
	若调用上述功能，应该首先引入该文件，然后再引入其它JS文件
作者：叶中奇
创建时间：2005-06-01
修改记录：
	2005-06-07：完成主要的功能
********************************************************************/

//====================::::::::::全局变量::::::::::====================
if(window.S_ResourcePath==null)			//资源路径
	S_ResourcePath = "../";
if(window.S_IncludedFiles==null)		//已经引入的外部资源
	S_IncludedFiles = new Array;

//====================::::::::::事件处理::::::::::====================
var LKSEvent = new Object;
/********************************************************************
功能：添加事件处理
参数：
	eventType：字符串，事件类型，如onkeydown等
	func：响应函数，若函数返回false，则事件处理完毕后终止后续操作
		字符串：需要执行的javascript代码
		函数：需要执行的javascript函数
注意：该函数会创建一个名为"LKSEvent.Event_事件类型"的数组，记录已经
	声明的所有事件
********************************************************************/
LKSEvent.AddEvent = function(eventType, func)
{
	eventType = eventType.toLowerCase();
	var obj = eval("LKSEvent.Event_"+eventType);
	if(obj == null)
	{
		obj = eval("LKSEvent.Event_"+eventType+" = new Array();");
		var code = "document."+eventType+" = function(){";
		code += "var x;var rtnVal = true;";
		code += "for(var i=0; i<LKSEvent.Event_"+eventType+".length; i++){";
		code += "x = LKSEvent.Event_"+eventType+"[i];";
		code += "x = (typeof(x)=='function')?x():eval(x);";
		code += "rtnVal = rtnVal && (x!=false);}";
		code += "return rtnVal;}";
		eval(code);
	}
	obj[obj.length] = func;
};

//====================::::::::::常用函数::::::::::====================

//引入JS文件
function IncludeJsFile(fileName)
{
	//避免同一个文件多次引入
	if(S_IncludedFiles.indexOf(fileName)==-1)
	{
		document.writeln("<script src='"+S_ResourcePath+"js/"+fileName+"'></script>");
		S_IncludedFiles[S_IncludedFiles.length] = fileName;
	}
}

//获取元素在数组中的位置，找不到返回-1
Array.prototype.indexOf = function(Elem)
{
	for(var i=0; i<this.length; i++)
		if(this[i]==Elem)
			return i;
	return -1;
};

//删除数组中的某个元素
Array.prototype.removeElem = function(Elem)
{
	var rtnArr = new Array;
	for(var i=0; i<this.length; i++)
		if(this[i]!=Elem)
			rtnArr[rtnArr.length] = this[i];
	return rtnArr;
};


